/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores;

import entidades.EstadoCentro;
import interfaz.Entidad;
import interfaz.Manejador;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import persistencia.Conexion;

/**
 *
 * @author Eugenio
 */
public class ManejadorDeEstadoCentro implements Manejador {

    private Conexion con;
    private PreparedStatement ps;
    private ResultSet rs;
    private ArrayList <EstadoCentro> estadoCentros;
    private static ManejadorDeEstadoCentro instancia;

    public ManejadorDeEstadoCentro(){
        con=Conexion.getInstancia();
    }

    public static ManejadorDeEstadoCentro getInstancia(){
        if(instancia==null){
            instancia=new ManejadorDeEstadoCentro();
        }

        return instancia;
    }

    public int agregar(Entidad estadoCentro) {
        int fila =0;
        String sql="INSERT INTO estado_centro (id_estado_centro, situacion_fisica_centro, tiempo, descripcion,"+
                    "acciones_tomadas) VALUES(0, ?, ?, ?, ?);";
        ps=(PreparedStatement)con.hacerEnunciado(sql);
        try {
            ps.setString(1, ((EstadoCentro) (estadoCentro)).getSituacionFisicaCentro());
            ps.setString(2, ((EstadoCentro) (estadoCentro)).getTiempo());
            ps.setString(3, ((EstadoCentro) (estadoCentro)).getDescripcion());
            ps.setString(4, ((EstadoCentro) (estadoCentro)).getAccionesTomadas());
            fila = ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeEstadoCentro.class.getName()).log(Level.SEVERE, null, ex);
        }
        return fila;
    }

    public int eliminar(int id) {
        int fila =0;
        String sql="DELETE FROM estado_centro WHERE id_estado_centro = ? ;";
        ps=(PreparedStatement)con.hacerEnunciado(sql);
        try {
            ps.setInt(1, id);
            fila=ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeEstadoCentro.class.getName()).log(Level.SEVERE, null, ex);
        }
    
        return fila;
    }


    public int modificar(Entidad estadoCentro, int id) {

        int fila =0;
        String sql="UPDATE estado_centro SET situacion_fisica_centro =?, tiempo = ? ,descripcion = ?, acciones_tomadas =?"+
                    "WHERE id_estado_centro =? ;";
        ps=(PreparedStatement)con.hacerEnunciado(sql);
        try {
            ps.setString(1, ((EstadoCentro) (estadoCentro)).getSituacionFisicaCentro());
            ps.setString(2, ((EstadoCentro) (estadoCentro)).getTiempo());
            ps.setString(3, ((EstadoCentro) (estadoCentro)).getDescripcion());
            ps.setString(4, ((EstadoCentro) (estadoCentro)).getAccionesTomadas());
            ps.setInt(5, id);
            fila = ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeEstadoCentro.class.getName()).log(Level.SEVERE, null, ex);
        }
        return fila;
    }


    public ArrayList<EstadoCentro> getEstadoCentros(){
        String sql ="SELECT * FROM estado_centro";
        estadoCentros = new ArrayList<EstadoCentro>();
        ps=(PreparedStatement)con.hacerEnunciado(sql);
        rs=con.hacerConsulta(sql);
        try {
            while (rs.next()) {
                EstadoCentro estadoCentro = new EstadoCentro(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5));
                estadoCentros.add(estadoCentro);
            }
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeEstadoCentro.class.getName()).log(Level.SEVERE, null, ex);
        }
        return estadoCentros;
    }
}
